/**
 * <pre>
 * Title: 		ServiceFactoryImpl.java
 * Author:		linriqing
 * Create:	 	2012-3-9 下午04:23:08
 * Copyright: 	Copyright (c) 2012
 * Company:		Shenzhen Helper
 * <pre>
 */
package com.hengpeng.itfinoss.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

import com.hengpeng.itfinoss.service.AppUserService;
import com.hengpeng.itfinoss.service.LinksService;
import com.hengpeng.itfinoss.service.MessageService;
import com.hengpeng.itfinoss.service.OperateLogService;
import com.hengpeng.itfinoss.service.PersistService;
import com.hengpeng.itfinoss.service.RemoteService;
import com.hengpeng.itfinoss.service.SequenceService;
import com.hengpeng.itfinoss.service.ServiceFactory;
import com.hengpeng.itfinoss.service.SystemJobService;
import com.hengpeng.itfinoss.service.article.ArticleCategorySerivce;
import com.hengpeng.itfinoss.service.article.ArticleGroupSerivce;
import com.hengpeng.itfinoss.service.article.ArticleService;
import com.hengpeng.itfinoss.service.bankproduct.BankProductService;
import com.hengpeng.itfinoss.service.borrowInfo.BorrowInfoService;
import com.hengpeng.itfinoss.service.fund.AccountLogService;
import com.hengpeng.itfinoss.service.fund.AccountService;
import com.hengpeng.itfinoss.service.fund.PaymentService;
import com.hengpeng.itfinoss.service.fund.TransferService;
import com.hengpeng.itfinoss.service.investInfo.InvestInfoService;
import com.hengpeng.itfinoss.service.notice.ProjectService;
import com.hengpeng.itfinoss.service.repayment.RepaymentService;
import com.hengpeng.itfinoss.service.stm.CommentService;
import com.hengpeng.itfinoss.service.stm.EmailLogService;
import com.hengpeng.itfinoss.service.stm.PartnerService;
import com.hengpeng.itfinoss.service.stm.SmsService;
import com.hengpeng.itfinoss.service.stm.SystemConfigService;
import com.hengpeng.itfinoss.service.user.UserInfoService;

/**
 * <pre>
 * 服务工厂接口实现
 * </pre>
 * 
 * @author linriqing
 * @version 1.0, 2012-3-9
 */
@Service
public class ServiceFactoryImpl implements ServiceFactory {
	@Autowired
	@Qualifier("remotePersistServiceImpl")
	private PersistService persistServcie;

	@Autowired
	private RemoteService remoteService;

	@Autowired
	private RestTemplate restTemplate;

	@Autowired
	private AppUserService appUserService;

	@Autowired
	private OperateLogService operateLogService;

	@Autowired
	private SystemConfigService systemConfigService;

	@Autowired
	@Qualifier("OSSSystemJobServiceImpl")
	private SystemJobService systemJobService;

	@Autowired
	private PartnerService partnerService;

	@Autowired
	private MessageService messageService;

	@Autowired
	private LinksService linksService;

	@Autowired
	private EmailLogService emailLogService;

	@Autowired
	private SmsService smsLogService;

	@Autowired
	private CommentService commentService;

	@Autowired
	private SmsService smsService;

	@Autowired
	private BorrowInfoService borrowInfoService;

	@Autowired
	private RepaymentService repaymentService;

	@Autowired
	private InvestInfoService investInfoService;

	@Autowired
	@Qualifier(SequenceService.CONTEXT_BEAN_NAME_SEQUENCESERVICE)
	private SequenceService sequenceService;

	@Autowired
	private UserInfoService userInfoService;

	@Autowired
	private AccountService accountService;

	@Autowired
	private AccountLogService accountLogService;

	@Autowired
	private PaymentService paymentService;

	@Autowired
	private TransferService transferService;

	@Autowired
	private ArticleService articleService;

	@Autowired
	private ArticleCategorySerivce articleCategorySerivce;

	@Autowired
	private ArticleGroupSerivce articleGroupSerivce;

	@Autowired
	private BankProductService bankProductService;

	@Autowired
	private ProjectService projectService;

	@Override
	public BankProductService getBankProductService() {
		// TODO Auto-generated method stub
		return bankProductService;
	}

	@Override
	public ProjectService getProjectService() {
		// TODO Auto-generated method stub
		return projectService;
	}

	@Override
	public ArticleService getArticleService() {
		return articleService;
	}

	@Override
	public ArticleCategorySerivce getArticleCategorySerivce() {
		return articleCategorySerivce;
	}

	@Override
	public ArticleGroupSerivce getArticleGroupSerivce() {
		return articleGroupSerivce;
	}

	@Override
	public UserInfoService getUserInfoService() {
		return userInfoService;
	}

	@Override
	public BorrowInfoService getBorrowInfoService() {
		return borrowInfoService;
	}

	public SmsService getSmsService() {
		return smsService;
	}

	public PersistService getPersistServcie() {
		return persistServcie;
	}

	@Override
	public PersistService getPersistService() {
		return persistServcie;
	}

	@Override
	public RestTemplate getRestTemplate() {
		return restTemplate;
	}

	@Override
	public AppUserService getAppUserService() {
		return appUserService;
	}

	@Override
	public OperateLogService getOperateLogService() {
		return operateLogService;
	}

	@Override
	public SystemConfigService getSystemConfigService() {
		return systemConfigService;
	}

	@Override
	public SystemJobService getSystemJobService() {
		return systemJobService;
	}

	@Override
	public PartnerService getPartnerService() {
		return partnerService;
	}

	@Override
	public MessageService getMessageService() {
		return messageService;
	}

	@Override
	public RemoteService getRemoteService() {
		return remoteService;
	}

	@Override
	public EmailLogService getEmailLogService() {
		return emailLogService;
	}

	@Override
	public SmsService getSmsLogService() {
		return smsLogService;
	}

	@Override
	public CommentService getCommentService() {
		return commentService;
	}

	@Override
	public LinksService getLinksService() {
		return linksService;
	}

	@Override
	public RepaymentService getRepaymentService() {
		return repaymentService;
	}

	@Override
	public InvestInfoService getInvestInfoService() {
		return investInfoService;
	}

	@Override
	public SequenceService getSequenceService() {
		return sequenceService;
	}

	@Override
	public AccountService getAccountService() {
		// TODO Auto-generated method stub
		return accountService;
	}

	@Override
	public AccountLogService getAccountLogService() {
		// TODO Auto-generated method stub
		return accountLogService;
	}

	@Override
	public TransferService getTransferService() {
		// TODO Auto-generated method stub
		return transferService;
	}

	@Override
	public PaymentService getPaymentService() {
		// TODO Auto-generated method stub
		return paymentService;
	}

}
